home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / dev / misc / CGraphX_DevKit.lha / CGraphX / Autodocs / cybergraphics.doc
Encoding:
Text File  |  1998-03-09  |  44.3 KB  |  1,268 lines

  1. TABLE OF CONTENTS
  2.  
  3. cybergraphics.library/--background--
  4. cybergraphics.library/--bitmaps--
  5. cybergraphics.library/AllocCModeListTagList
  6. cybergraphics.library/BestCModeIDTagList
  7. cybergraphics.library/CModeRequestTagList
  8. cybergraphics.library/CVideoCtrlTagList
  9. cybergraphics.library/DoCDrawMethodTagList
  10. cybergraphics.library/ExtractColor
  11. cybergraphics.library/FillPixelArray
  12. cybergraphics.library/FreeCModeList
  13. cybergraphics.library/GetCyberMapAttr
  14. cybergraphics.library/GetCyberIDAttr
  15. cybergraphics.library/InvertPixelArray
  16. cybergraphics.library/IsCyberModeID
  17. cybergraphics.library/LockBitMapTagList
  18. cybergraphics.library/MovePixelArray
  19. cybergraphics.library/ReadPixelArray
  20. cybergraphics.library/ReadRGBPixel
  21. cybergraphics.library/ScalePixelArray
  22. cybergraphics.library/WritePixelArray
  23. cybergraphics.library/WriteLUTPixelArray
  24. cybergraphics.library/WriteRGBPixel
  25. cybergraphics.library/UnLockBitMap
  26. cybergraphics.library/UnLockBitMapTagList
  27. cybergraphics.library/--background--      cybergraphics.library/--background--
  28.  
  29.    PURPOSE
  30.     cybergraphics.library is meant to be a gfx board extension for the
  31.     native graphics.library. Because C= never developed a rtg compliant
  32.     graphics.library (up to OS3.1 there are no possibilities to add custom
  33.     boards into the display database in a system friendly fashion), it
  34.     patches some of the original graphics functions in order to integrate
  35.     custom graphics boards into the system.
  36.      It also features some new functions which are not available in the
  37.     standard graphics.library. Currently graphics.library v39 and v40 is
  38.     supported.
  39.      Additionally it is possible to open screens deeper than 256 colours
  40.     which are completely intuition compatible. Nearly every function may
  41.     be used on such screen except some special blits which rely on planar
  42.     bitmap graphics. Also, this screens are 8bit backwards compatible.
  43.     Nearly every standard 8bit application will work on this 15/16/24 bit
  44.     screen. But it only can use the additional features, if it knows of
  45.     CyberGraphX, of course.
  46.      Maybe in a future release of graphics, CyberGraphX will be
  47.     obsolete.  But until then, cybergraphics.library is the only way to
  48.     add truecolour features to your application under an intuition
  49.     environment with minimum effort.
  50.      So, CyberGraphX is not meant to be a replacement for the original
  51.     graphics/intuition system (just like EGS is for example), e.g. there
  52.     is no ECS/AGA native chipset CyberGraphX driver, because all the
  53.     functionality of the original chipset is already given in the
  54.     original graphics.library.
  55.     
  56.    OVERVIEW
  57.     This part only describes how to use the extended features of
  58.     CyberGraphX. Anything else about programming graphics can be found
  59.     in the original graphics.library documentation. Most graphics.library
  60.         functions are extended to work on CyberGraphX's 15/16/24 bit
  61.         rastports.
  62.  
  63. cybergraphics.library/--bitmaps--            cybergraphics.library/--bitmaps--
  64.  
  65. Bitmaps & CyberGraphX
  66.  
  67.  Before OS 3.x there was no standard method to create bitmaps.  It was up
  68. to the application programmer to allocate memory for the bitmap structure
  69. and to get the plane pointers by subsequent calls to AllocRaster()/gfx.  A
  70. InitBitMap() call was available to initialize various elements in the
  71. bitmap structure.
  72.  Unfortunately some people didn't even use AllocRaster() and InitBitmap()
  73. to setup their bitmaps but used AllocMem() and initialized the bitmap
  74. structure on their own.
  75.  Because there was only one certain bitplane format description, it was no
  76. problem to directly poke into the allocated planes.  It even was no problem
  77. to alter the contents of the bitmap structure because the application had
  78. total control over the location and the contents of this structure and
  79. related plane pointers.
  80.  
  81.  Starting with OS 3.x two new graphics calls were added to support bitmap
  82. creation and removal:  AllocBitmap()/gfx and FreeBitmap()/gfx.  With this
  83. calls the first step was made to allow custom bitmap formats.  Before it
  84. was no problem at all to directly render into the planes or to make
  85. assumptions about the structure of the bitmap data.  To get more
  86. information about the bitmap data an information retrieval call was added:
  87. GetBitmapAttr()/gfx.  With this one you could get information on the width,
  88. height, depth and certain flags of the bitmap.  This was the first step
  89. into the RTG direction.  As soon as GetBitmapAttr(bm,BMA_FLAGS) didn't
  90. return BMF_STANDARD, the bitmap was not direct accessable anymore and could
  91. only be accessed by attachment to a rastport and subsequent rendering calls
  92. or by using blit calls with a standard amiga bitmap as destination.
  93.  Unfortunately many programs didn't follow these guide lines and didn't
  94. check for the BMF_STANDARD flag with OS3.0 and above.  Up to now many
  95. programs still use the methods described at the beginning of this chapter.
  96. That's one reason why graphics extensions like CyberGraphX still have to
  97. fiddle around with planar to chunky conversions, even if the underlying
  98. hardware doesn't support planar graphics anymore.  This often leads to
  99. dramatic speed losses with certain applications which often could be
  100. redundant if standard rendering calls were used.
  101.  So please use AllocBitmap()/FreeBitmap() whereever possible when running
  102. 3.x.  It really gives you a major performance improvement in most cases
  103. when used on 3rd party display adapters.  Don't forget to add a friend
  104. bitmap pointer whereever possible to allocate compatible bitmap structures.
  105.  With CyberGraphX you also have to add BMF_MINPLANES in the flags field of
  106. AllocBitmap()/gfx.  This is due to bug in the standard picture.datatype
  107. which doesn't check for BMF_STANDARD and directly pokes into the bitplanes
  108. even if the returned bitmap is non planar ......  Using BMF_MINPLANES in a
  109. non CyberGraphX environment remains still compatible and should not lead to
  110. any problems, with CyberGraphX a chunky bitmap is returned, if a chunky
  111. friendbitmap is supplied.  How to access the bitmap data will be discussed
  112. later on.  Don't make assumptions on the bitmap contents before you have
  113. called the required CyberGraphX library calls !!
  114.  
  115.  Besides the AllocBitmap() friend bitmap method, AllocBitmap() has been
  116. extended to allow for allocation of certain pixel format bitmaps when using
  117. CyberGraphX.  With CyberGraphX, bitmaps aren't limited to planar image maps
  118. or 8 bit chunky data (which wasn't even available with the standard
  119. chipset/ graphics.library) anymore.  It is also possible now to allocate
  120. device dependant pixel format bitmaps and standard 15/16/24/32 bit depth
  121. image maps.  Therefore new bits in the 32bit flags field parameter of
  122. AllocBitmap() have been added.  If you specify the BMB_SPECIALFMT bit (see
  123. includes), the upper 8 bits of the flags longword contain information on
  124. the pixel format of the requested bitmap.  The following pixel formats are
  125. available:
  126.   PIXFMT_LUT8,PIXFMT_RGB15,PIXFMT_BGR15,PIXFMT_RGB15PC,PIXFMT_BGR15PC,
  127.   PIXFMT_RGB16,PIXFMT_BGR16,PIXFMT_RGB16PC,PIXFMT_BGR16PC,PIXFMT_RGB24,
  128.   PIXFMT_BGR24,PIXFMT_ARGB32,PIXFMT_BGRA32,PIXFMT_RGBA32 Many of this pixel
  129. formats are device specific and should not be used, recommended formats are
  130. PIXFMT_LUT8, PIXFMT_RGB16, PIXFMT_RGB24 and PIXFMT_ARGB32.
  131.  Once allocated, you can attach the returned bitmap to a rastport and do
  132. rendering calls.  It is NOT possible to attach this bitmap to a screen by
  133. supplying it as custom bitmap with OpenScreenTagList() !!
  134.  You are not allowed to directly poke into the bitmap image data as long as
  135. the bitmap isn't locked !.  The location and contents of the image data is
  136. subject to change and is only valid when it's locked by using the available
  137. locking calls (see autodocs).  LockBitmapTags()/UnLockBitmap() has been
  138. added for this purpose.  You HAVE TO supply a taglist with LockBitmapTags()
  139. which contains pointers to longwords which are filled with valid data if
  140. the call returns with a non-zero value.  Only if a non-zero value is
  141. returned you are able to access the bitmap directly !  Check the address
  142. you get back with the LBMI_BASEADDRESS tag.  This is the base address you
  143. can do your rendering to.  Get the value of the LBMI_PIXFMT ULONG field to
  144. get information on the colormodel you have to use for image rendering.  ALL
  145. models have to be supported!  The other fields give you information on the
  146. layout of the bitmap data.  It should be no problem, to directly render
  147. into the bitmap anymore.  Keep in mind that all this values are only valid
  148. until a subsequent call to UnLockBitmap().  Afterwards you have to lock the
  149. bitmap again.  Don't hold this lock for longer than one frame !  You may
  150. use the standard graphics.library bitmap blitting calls to copy the bitmap
  151. contents to another bitmap.  Copying truecolour bitmaps into indexed colour
  152. chunky bitmaps is not supported by now.
  153.  
  154. cybergraphics.library/AllocCModeListTagList cybergraphics.library/AllocCModeListTagList
  155.  
  156.    NAME
  157.     AllocCModeListTagList -- get an exec list with requested modes.
  158.     AllocCModeListTags -- Varargs stub for AllocCModeListTagList
  159.  
  160.    SYNOPSIS
  161.     result = AllocCModeListTagList( TagItems )
  162.     D0                               A1
  163.  
  164.     APTR AllocCModeListTagList( struct TagItem * );
  165.  
  166.     result = AllocCModeListTags( Tag1, ... )
  167.  
  168.     APTR AllocCModeListTags( Tag Tag1, ... );
  169.  
  170.    FUNCTION
  171.     Allocates a list structure which contains all requested modes (All nodes
  172.     are of type CyberModeNode). See defines for more information about the
  173.     structure of this nodes.
  174.  
  175.    INPUTS
  176.     TagItems - pointer to an optional tag list which may be used to
  177.                control the number of returned modes
  178.  
  179.    TAGS
  180.     Tags available are:
  181.  
  182.     CYBRMREQ_MinWidth (ULONG) - The minimum display width to let the user
  183.             choose. Default is 320.
  184.  
  185.     CYBRMREQ_MaxWidth (ULONG) - The maximum display width to let the user
  186.             choose. Default is 1600.
  187.  
  188.     CYBRMREQ_MinHeight (ULONG) - The minimum display height to let the user
  189.             choose. Default is 240.
  190.  
  191.     CYBRMREQ_MaxHeight (ULONG) - The maximum display height to let the user
  192.             choose. Default is 1200.
  193.  
  194.     CYBRMREQ_MinDepth (UWORD) - The minimum display depth to let the user
  195.             choose. Default is 8.
  196.  
  197.     CYBRMREQ_MaxDepth (UWORD) - The maximum display depth to let the user
  198.             choose. Default is 32.
  199.  
  200.     CYBRMREQ_CModelArray (UWORD *) - Array of color models which should be
  201.                     available for screenmode selection. Currently supported
  202.                     colormodels are:
  203.                      PIXFMT_LUT8
  204.                      PIXFMT_RGB15
  205.                      PIXFMT_BGR15
  206.                      PIXFMT_RGB15PC
  207.                      PIXFMT_BGR15PC
  208.                      PIXFMT_RGB16
  209.                      PIXFMT_BGR16
  210.                      PIXFMT_RGB16PC
  211.                      PIXFMT_BGR16PC
  212.                      PIXFMT_RGB24
  213.                      PIXFMT_BGR24
  214.                      PIXFMT_ARGB32
  215.                      PIXFMT_BGRA32
  216.                      PIXFMT_RGBA32
  217.                     default is all colormodels available, nothing filtered
  218.  
  219.    RESULT
  220.     result - 0 if no modes are available, a pointer to a exec list if there
  221.          are modes which fit your needs.
  222.  
  223.    SEE ALSO
  224.     FreeCModeList()
  225.  
  226. cybergraphics.library/BestCModeIDTagList   cybergraphics.library/BestCModeIDTagList
  227.  
  228.    NAME
  229.     BestCModeIDTagList -- calculate the best ModeID with given parameters
  230.     BestCModeIDTags -- Varags stub for BestCModeIDTagList
  231.  
  232.    SYNOPSIS
  233.     ID = BestCModeIDTagList( TagItems )
  234.     D0                          A0
  235.  
  236.         ULONG BestCModeIDTagList( struct TagItem * );
  237.  
  238.     ID = BestCModeIDTags( Tag1, ...)
  239.  
  240.         ULONG BestCModeIDTags( Tag, ... );
  241.  
  242.    FUNCTION
  243.     Returns the CyberGraphX displaymode ID which fits best for the parameters
  244.         supplied in the TagList.
  245.  
  246.    INPUTS
  247.     TagItems - pointer to an array of TagItems
  248.  
  249.    TAGS
  250.         CYBRBIDTG_Depth (ULONG) - depth the returned ModeID must support
  251.                                   Default is 8
  252.  
  253.         CYBRBIDTG_NominalWidth (UWORD),
  254.         CYBRBIDTAG_NominalHeight (UWORD) - desired width and height the ModeID
  255.                                            should have
  256.  
  257.         CYBRBIDTG_MonitorID (ULONG) - if multiple graphics boards are
  258.                                       installed in the system, you can choose
  259.                                       the desired one with this tag
  260.  
  261.                 Currently supported boards are:
  262.  
  263.                     CVision64 [1]
  264.                     Piccolo [2]
  265.                     PicassoII [3]
  266.                     Spectrum [4]
  267.                     Domino [5]
  268.                     RetinaZ3/DraCoAltais [6]
  269.                     PiccoSD64 [7]
  270.                                         A2410 [8]
  271.                     CVision3D [13] (V41)
  272.                     Inferno [14] (V41)
  273.                     PicassoIV [15] (V41)
  274.  
  275.     CYBRBIDTG_BoardName (STRPTR) - Specify the card name directly. For
  276.                 example, pass "CVision3D" to get a
  277.                 CyberVision64/3D board ID
  278.  
  279.    RESULT
  280.     ID - id of the best mode to use, or INVALID_ID if a match could
  281.          not be found.
  282.  
  283.    BUGS
  284.     Older versions return displaymode ids with wrong depth if the
  285.     desired color depth is not available.
  286.     If you specify very small widths/heights (e.g. 50/20 icon size) this
  287.     call returns INVALID_ID instead of the smallest available lowres
  288.     ID 
  289.  
  290. cybergraphics.library/CModeRequestTagList    cybergraphics.library/CModeRequestTagList
  291.  
  292.    NAME
  293.     CModeRequestTagList -- get screenmode from user using a requester.
  294.     CModeRequestTags -- Varargs stub for CModeRequestTagList
  295.  
  296.    SYNOPSIS
  297.     result = CModeRequestTagList( Requester, TagItems )
  298.     D0                                A0        A1
  299.  
  300.     LONG CModeRequestTagList( APTR, struct TagItem * );
  301.  
  302.     result = CModeRequestTags( Requester, Tag1, ... )
  303.  
  304.     LONG CModeRequestTags( APTR, Tag, ...);
  305.  
  306.    FUNCTION
  307.     Prompts the user for input by showing all available CyberGraphX
  308.     screenmodes in a requester.
  309.     If the user cancels or the system aborts the request, FALSE is returned,
  310.     otherwise the displaymode id of the selected screenmode.
  311.  
  312.    INPUTS
  313.     Requester - not used currently. You have to set it to NULL!
  314.     TagItems - pointer to an optional tag list which may be used to
  315.                control features of the requester
  316.  
  317.    TAGS
  318.     Tags used for the screen mode requester
  319.  
  320.     CYBRMREQ_Screen (struct Screen *) - Screen on which to open the requester.
  321.             default locale will be used.
  322.  
  323.     CYBRMREQ_WinTitle (STRPTR) - Title to use for the requesting window.
  324.  
  325.     CYBRMREQ_OKText (STRPTR) - Label of the positive gadget in the
  326.             requester. English default is "OK".
  327.  
  328.     CYBRMREQ_CancelText (STRPTR) - Label of the negative gadget in the
  329.             requester. English default is "Cancel".
  330.  
  331.     CYBRMREQ_MinWidth (ULONG) - The minimum display width to let the user
  332.             choose. Default is 320.
  333.  
  334.     CYBRMREQ_MaxWidth (ULONG) - The maximum display width to let the user
  335.             choose. Default is 1600.
  336.  
  337.     CYBRMREQ_MinHeight (ULONG) - The minimum display height to let the user
  338.             choose. Default is 240.
  339.  
  340.     CYBRMREQ_MaxHeight (ULONG) - The maximum display height to let the user
  341.             choose. Default is 1200.
  342.  
  343.     CYBRMREQ_MinDepth (UWORD) - The minimum display depth to let the user
  344.             choose. Default is 8.
  345.  
  346.     CYBRMREQ_MaxDepth (UWORD) - The maximum display depth to let the user
  347.             choose. Default is 32.
  348.  
  349.     CYBRMREQ_CModelArray (UWORD *) - Array of color models which should
  350.                     be available for screenmode selection. Currently
  351.                     supported colormodels are:
  352.  
  353.             PIXFMT_LUT8
  354.             PIXFMT_RGB15
  355.             PIXFMT_BGR15
  356.             PIXFMT_RGB15PC
  357.             PIXFMT_BGR15PC
  358.             PIXFMT_RGB16
  359.             PIXFMT_BGR16
  360.             PIXFMT_RGB16PC
  361.             PIXFMT_BGR16PC
  362.             PIXFMT_RGB24
  363.             PIXFMT_BGR24
  364.             PIXFMT_ARGB32
  365.             PIXFMT_BGRA32
  366.             PIXFMT_RGBA32
  367.  
  368.             default is all colormodels available, nothing filtered
  369.  
  370.    RESULT
  371.     result - 0 if the user cancelled the requester or if something
  372.          prevented the requester from opening. If!= 0 the displaymode
  373.          id of the selected screenmode is returned.
  374.  
  375.    BUGS
  376.     The requester structure is not supported.
  377.  
  378.    NOTES
  379.     You should better use asl.library/AslRequest() instead.
  380.  
  381. cybergraphics.library/CVideoCtrlTagList cybergraphics.library/CVideoCtrlTagList
  382.  
  383.    NAME
  384.     CVideoCtrlTagList -- Control video output
  385.     CVideoCtrlTags -- Varargs stub for CVideoCtrlTagList
  386.  
  387.    SYNOPSIS
  388.     CVideoCtrlTagList( ViewPort, TagItems )
  389.                           A0        A1
  390.  
  391.     void CVideoCtrlTagList( struct ViewPort *, struct TagItem * );
  392.  
  393.     CVideoCtrlTags( ViewPort, Tag1, ... )
  394.  
  395.     void CVideoCtrlTags( struct ViewPort *, Tag tag1, ... );
  396.  
  397.    FUNCTION
  398.     This function controls the video output of the gfx board to which the
  399.     specified ViewPort belongs to.
  400.  
  401.    INPUTS
  402.     ViewPort - pointer to a ViewPort of a CyberGraphX screen
  403.     TagItems - taglist to control operation
  404.  
  405.    TAGS
  406.  
  407.     SETVC_DPMSLevel    (ULONG)  Set the DPMS level for the specified viewport
  408.         Supported levels are:
  409.          DPMS_ON    Full operation
  410.          DPMS_STANDBY    Optional state of minimal power reduction
  411.          DPMS_SUSPEND    Significant reduction of power consumption
  412.          DPMS_OFF    Lowest level of power consumption
  413.  
  414.    EXAMPLE
  415.     CVideoCtrlTags (&Scr->ViewPort,SETVC_DPMSLevel,DPMS_OFF,TAG_DONE);
  416.     /* set DPMS level */
  417.  
  418.    NOTES
  419.     Some DPMS levels are not implemented for certain graphics cards
  420.  
  421.  
  422. cybergraphics.library/DoCDrawMethodTagList cybergraphics.library/DoCDrawMethodTagList
  423.  
  424.    NAME
  425.     DoCDrawMethodTagList -- Do the given hook for the supplied rastport
  426.     DoCDrawMethodTags -- Varargs stub for DoCDrawMethodTagList
  427.  
  428.    SYNOPSIS
  429.     DoCDrawMethodTagList( Hook, RastPort, TagItems )
  430.                            A0      A1        A2
  431.  
  432.     void DoCDrawMethodTagList( struct Hook *, struct RastPort *,
  433.                                struct TagItem * )
  434.  
  435.     DoCDrawMethodTags( Hook, RastPort, Tag1, ... )
  436.  
  437.     void DoCDrawMethodTags( struct Hook *, struct RastPort *,
  438.                             Tag1, ... )
  439.  
  440.    FUNCTION
  441.     This function will call the given hook for the given rastport. Is is
  442.     mainly used to do direct bitmap modifications in a locked graphics
  443.     environment. You have to support ALL known color models, so only use
  444.     this call if you really need it!!
  445.     
  446.  
  447.    INPUTS
  448.     Hook - pointer to callback hook which will be called
  449.            with object == (struct RastPort *)
  450.            and message == [ (APTR) memptr,
  451.                             (ULONG) offsetx, (ULONG) offsety,
  452.                             (ULONG) xsize, (ULONG) ysize,
  453.                             (UWORD) bytesperrow, (UWORD) bytesperpix,
  454.                             (UWORD) colormodel]
  455.            Where colormodel is one of the following:
  456.             PIXFMT_LUT8
  457.             PIXFMT_RGB15
  458.             PIXFMT_BGR15
  459.             PIXFMT_RGB15PC
  460.             PIXFMT_BGR15PC
  461.             PIXFMT_RGB16
  462.             PIXFMT_BGR16
  463.             PIXFMT_RGB16PC
  464.             PIXFMT_BGR16PC
  465.             PIXFMT_RGB24
  466.             PIXFMT_BGR24
  467.             PIXFMT_ARGB32
  468.             PIXFMT_BGRA32
  469.             PIXFMT_RGBA32
  470.     RastPort- A pointer to a cybergraphics RastPort
  471.     TagItems - optional taglist, currently not used. Set it to NULL!
  472.  
  473.    NOTES
  474.     Use this call only if you want high speed. Keep in mind that you have
  475.     to handle all color models! Do not use ANY os functions in your hook.
  476.     They would cause unpredictable results.
  477.  
  478.    BUGS
  479.     In previous autodocs, the bytesperrow message field was described as
  480.     an (ULONG) which in fact was an (UWORD). 
  481.  
  482.    SEE ALSO
  483.     LockBitMap(), LockBitMapTagList()
  484.  
  485. cybergraphics.library/FreeCModeList       cybergraphics.library/FreeCModeList
  486.  
  487.    NAME
  488.     FreeCModeList -- frees a previously allocated ModeList
  489.  
  490.    SYNOPSIS
  491.     FreeCModeList( ModeList );
  492.                       A0
  493.  
  494.     void FreeCModeList( struct List * );
  495.  
  496.    FUNCTION
  497.     frees all data which was previously allocated by AllocCModeListTagList()
  498.  
  499.    INPUTS
  500.     ModeList - a list structure which contains all the mode data.
  501.  
  502.    SEE ALSO
  503.     AllocCModeListTagList()
  504.  
  505. cybergraphics.library/GetCyberMapAttr    cybergraphics.library/GetCyberMapAttr
  506.  
  507.    NAME
  508.     GetCyberMapAttr -- Returns information about a cybergraphics bitmap
  509.  
  510.    SYNOPSIS
  511.     value = GetCyberMapAttr( BitMap, Attribute );
  512.         D0                        A0       D0
  513.  
  514.     ULONG GetCyberMapAttr( struct BitMap *, ULONG );
  515.  
  516.    FUNCTION
  517.     Gets information about an extended cybergraphics bitmap.
  518.     This function should be used instead of making any assumptions about
  519.     fields in the bitmap structure. This will provide future
  520.         compatibility.
  521.  
  522.    INPUTS
  523.     BitMap - pointer to a cybergraphics bitmap structure
  524.  
  525.     Attribute - a number telling cybergraphics which attribute
  526.                 of the bitmap should be returned:
  527.  
  528.                 CYBRMATTR_XMOD        returns bytes per row of the
  529.                                       supplied bitmap
  530.  
  531.                 CYBRMATTR_BPPIX       returns number of bytes per pixel
  532.  
  533.                 CYBRMATTR_PIXFMT      return the pixel format of the
  534.                                       bitmap
  535.  
  536.                 CYBRMATTR_WIDTH       return width of the bitmap in
  537.                                       pixels
  538.  
  539.                 CYBRMATTR_HEIGHT      return the height in lines
  540.  
  541.                 CYBRMATTR_DEPTH       returns bits per pixel
  542.  
  543.                 CYBRMATTR_ISCYBERGFX  returns TRUE if supplied bitmap is
  544.                                       a CyberGraphX one
  545.  
  546.                 CYBRMATTR_ISLINEARMEM returns TRUE if the related display
  547.                                       buffer supports linear memory access
  548.  
  549.    NOTES
  550.     Unknown attributes are reserved for future use, and return (-1L).
  551.  
  552.     You should know what you are doing if you call this function!
  553.     Always use the CYBRMATTR_ISCYBERGFX attribute first to check if the
  554.     bitmap is a CyberGraphX one.
  555.  
  556.    SEE ALSO
  557.     graphics.library/GetBitMapAttr()
  558.  
  559. cybergraphics.library/GetCyberIDAttr    cybergraphics.library/GetCyberIDAttr
  560.  
  561.    NAME
  562.     GetCyberIDAttr -- Returns information about a cybergraphics id
  563.  
  564.    SYNOPSIS
  565.     value = GetCyberIDAttr( Attribute, DisplayModeID )
  566.       D0                       D0            D1
  567.  
  568.     ULONG GetCyberIDAttr( ULONG, ULONG );
  569.  
  570.    FUNCTION
  571.         Returns information about a specified displaymode id.
  572.  
  573.    INPUTS
  574.     Attribute - A number telling cybergraphics which attribute
  575.                 of the displaymode id should be returned:
  576.  
  577.                 CYBRIDATTR_PIXFMT return the pixel format of the supplied
  578.                                   screenmode id
  579.  
  580.                 CYBRIDATTR_WIDTH  returns visible width in pixels
  581.                 CYBRIDATTR_HEIGHT returns visible height in lines
  582.                 CYBRIDATTR_DEPTH  returns bits per pixel
  583.                 CYBRIDATTR_BPPIX  returns bytes per pixel
  584.  
  585.     DisplayModeID - CyberGraphX displaymode id
  586.  
  587.    NOTES
  588.     Unknown attributes are reserved for future use, and return (-1L).
  589.  
  590.     You should know what you are doing if you call this function!
  591.     Don't apply it on a non cybergraphics displaymode!
  592.  
  593. cybergraphics.library/IsCyberModeID       cybergraphics.library/IsCyberModeID
  594.  
  595.    NAME
  596.     IsCyberModeID -- returns whether supplied ModeID is a cybergraphics id
  597.  
  598.    SYNOPSIS
  599.     result = IsCyberModeID( DisplayModeID )
  600.     D0                            D0
  601.  
  602.     BOOL IsCyberModeID( ULONG );
  603.  
  604.    FUNCTION
  605.     returns whether the supplied ModeID is a cybergraphics.library mode
  606.     identifier (TRUE) or not (FALSE).
  607.  
  608.    INPUTS
  609.     DisplayModeID -- a 32 bit display identifier.
  610.  
  611.    RESULT
  612.     result - Flag to indicate if DisplayModeID is a CyberGraphX id
  613.  
  614. cybergraphics.library/ExtractColor          cybergraphics.library/ExtractColor
  615.  
  616.    NAME
  617.         ExtractColor -- Extract the specified colour/CLUT value from a given
  618.         CyberGraphX RastPort into a single plane bitmap starting at
  619.         a certain x,y location and using the specified width and
  620.         height. (V41)
  621.  
  622.    SYNOPSIS
  623.     result = ExtractColor(RastPort,SingleMap,Colour,sX,sY, Width, Height)
  624.     D0                     A0         A1      D0   D1 D2   D3      D4
  625.             
  626.  
  627.     LONG ExtractColor(struct RastPort *,struct BitMap *,ULONG, ULONG,
  628.                 ULONG, ULONG, ULONG );
  629.  
  630.    FUNCTION
  631.         ExtractColor -- Extract the specified colour/CLUT value from a given
  632.         CyberGraphX RastPort into a single plane bitmap starting at
  633.         a certain x,y location and using the specified width and
  634.         height. Use this function if you want to create masks.
  635.         (V41)
  636.  
  637.    INPUTS
  638.     RastPort -  pointer to a CyberGraphX RastPort structure
  639.  
  640.     SingleMap - planar destination bitmap that has at least a depth of
  641.         one and the minimum width and height specified.
  642.  
  643.         Colour - the color that should be extracted in AARRGGBB format for
  644.         true color rastports or in indexed mode for CLUT rastports.
  645.         The ULONG coding is as follows (for rgb screens):
  646.                  AA - 8-bit alpha channel component
  647.               (set it to 00 if you do not use it!)
  648.                  RR - 8-bit red component of the pixel
  649.                  GG - 8-bit green component
  650.                  BB - 8-bit blue component
  651.  
  652.         For CLUT rastports only the lowest byte is used as an index
  653.         value to a 256 colour lookup table
  654.         
  655.     sX,sY - starting point in the RastPort that should be analyzed
  656.     Width,Height - size of the rectangle that should be analyzed
  657.  
  658.    RESULT
  659.     result - returns TRUE if colour could be extraced, FALSE if not
  660.  
  661.    NOTES
  662.     This call was a no-op in very early revisions of cybergraphics v41
  663.  
  664. cybergraphics.library/FillPixelArray     cybergraphics.library/FillPixelArray
  665.  
  666.    NAME
  667.         FillPixelArray -- fill a rectangular area with the supplied ARGB value
  668.     starting at a specified x,y location and continuing through to another
  669.     x,y location within a certain RastPort
  670.  
  671.    SYNOPSIS
  672.     count = FillPixelArray(RastPort,DestX, DestY,SizeX,SizeY,ARGB)
  673.     D0                        A1    D0:16  D1:16 D2:16 D3:16 D4:32
  674.             
  675.  
  676.     LONG FillPixelArray( struct RastPort *, UWORD, UWORD,
  677.                          UWORD, UWORD, ULONG );
  678.  
  679.    FUNCTION
  680.     For each pixel in a rectangular region, write the supplied color value
  681.     into the bitmap used to describe a particular rastport.
  682.  
  683.    INPUTS
  684.     RastPort -  pointer to a RastPort structure
  685.     (DestX,DestY) - starting point in the RastPort
  686.     (SizeX,SizeY) - size of the rectangle that should be transfered
  687.         ARGB  - the desired color in AARRGGBB format for true color rastports
  688.         or in indexed mode for CLUT rastports. Every component
  689.         uses 8 bits in the supplied longword. The coding is as
  690.         follows (for rgb screens):
  691.                  AA - 8-bit alpha channel component
  692.               (set it to 00 if you do not use it!)
  693.                  RR - 8-bit red component of the pixel
  694.                  GG - 8-bit green component
  695.                  BB - 8-bit blue component
  696.  
  697.         For CLUT rastports only the blue component is used as an
  698.         index value to a 256 colour lookup table
  699.         
  700.  
  701.    RESULT
  702.     count will be set to the number of pixels plotted
  703.  
  704.    NOTES
  705.     This function should only be used on screens depths > 8 bits in
  706.     cybergraphics versions prior v41.
  707.  
  708.    BUGS
  709.     The returned count value is wrong up to and including v41 of the
  710.     cybergraphics.library
  711.  
  712.    SEE ALSO
  713.     InvertPixelArray()
  714. cybergraphics.library/InvertPixelArray   cybergraphics.library/InvertPixelArray
  715.  
  716.    NAME
  717.         InvertPixelArray -- invert a rectangular area
  718.  
  719.    SYNOPSIS
  720.     count = InvertPixelArray(RastPort,DestX, DestY,SizeX,SizeY)
  721.     D0               A1     D0:16  D1:16 D2:16 D3:16
  722.             
  723.  
  724.     LONG InvertPixelArray( struct RastPort *, UWORD, UWORD,
  725.                            UWORD,UWORD );
  726.  
  727.    FUNCTION
  728.     Invert each pixel in a rectangular region.
  729.  
  730.    INPUTS
  731.     RastPort -  pointer to a RastPort structure
  732.     (DestX,DestY) - starting point in the RastPort
  733.     (SizeX,SizeY) - size of the rectangle that should be transfered
  734.  
  735.    RESULT
  736.     count will be set to the number of pixels plotted
  737.  
  738.    NOTES
  739.     This function should only be used on screens depths > 8 bits with
  740.     cybergraphics versions prior v41.
  741.  
  742.    BUGS
  743.     The count value returned is totally wrong.
  744.  
  745.    SEE ALSO
  746.     FillPixelArray()
  747. cybergraphics.library/LockBitmapTagList cybergraphics.library/LockBitMapTagList
  748.  
  749.    NAME
  750.     LockBitMapTagList -- Lock supplied BitMap for a short amount of time
  751.                              to allow direct memory access
  752.  
  753.    SYNOPSIS
  754.     handle = LockBitmapTagList(bitmap,tags);
  755.     D0                           A0    A1
  756.  
  757.     APTR LockBitMapTagList( APTR,struct TagItem * );
  758.  
  759.     APTR LockBitMapTags( APTR,Tag1, ... );
  760.  
  761.    FUNCTION
  762.  
  763.    INPUTS
  764.         bitmap - pointer to a CyberGraphX bitmap pointer. please check if it is
  765.                  a cybermap by calling GetCyberMapAttr() first.
  766.     tags - pointer to a mandatory taglist which's tagdata pointer fields
  767.                contain valid longwords after a successful call.
  768.  
  769.    TAGS
  770.      Tags used for the screen mode requester
  771.  
  772.     LBMI_WIDTH (ULONG *) - points to a longword which contains the bitmap
  773.                                width after a succesful call
  774.     LBMI_HEIGHT (ULONG *) - points to a longword which contains the bitmap
  775.                                 height after a succesful call
  776.     LBMI_DEPTH (ULONG *) - points to a longword which contains the bitmap
  777.                                depth after a successful call
  778.     LBMI_PIXFMT (ULONG *) - points to a longword which contains the used
  779.                                 pixel format.
  780.  
  781.             Possibly returned colormodels are:
  782.  
  783.             PIXFMT_LUT8
  784.             PIXFMT_RGB15
  785.             PIXFMT_BGR15
  786.             PIXFMT_RGB15PC
  787.             PIXFMT_BGR15PC
  788.             PIXFMT_RGB16
  789.             PIXFMT_BGR16
  790.             PIXFMT_RGB16PC
  791.             PIXFMT_BGR16PC
  792.             PIXFMT_RGB24
  793.             PIXFMT_BGR24
  794.             PIXFMT_ARGB32
  795.             PIXFMT_BGRA32
  796.             PIXFMT_RGBA32
  797.  
  798.     LBMI_BYTESPERPIX (ULONG *) - points to a longword which contains the
  799.                                      amount of bytes per pixel data.
  800.     LBMI_BYTESPERROW (ULONG *) - points to a longword which contains the
  801.                                      number of bytes per row for one bitmap
  802.                                      line
  803.     LBMI_BASEADDRESS (ULONG *) - points to a longword which contains the
  804.                                      bitmap base address. THIS ADDRESS IS ONLY
  805.                                      VALID INSIDE OF THE LOCK/UNLOCKBITMAP
  806.                                      CALL!!!!!!!!!
  807.  
  808.  
  809.    RESULT
  810.     handle - 0 if the bitmap could not be locked,!= 0 it contains a handle
  811.                  which should be passed to UnLockBitMap afterwards
  812.  
  813.    NOTES
  814.         Only use this call if you really NEED the rendering speed, DON'T lock the
  815.         bitmap longer than for one frame. DON'T use any library calls while the
  816.         bitmap is locked! This function is considered low level.
  817.  
  818.    BUGS
  819.     The LBMI_DEPTH tagitem pointer will always contain 8 even for deeper
  820.     bitmaps. Use GetCyberMapAttr() or graphics.library/GetBitMapAttr() to
  821.     get the correct depth.
  822.  
  823.    SEE ALSO
  824.     UnLockBitMap(), UnLockBitMapTagList()
  825.  
  826. cybergraphics.library/MovePixelArray     cybergraphics.library/MovePixelArray
  827.  
  828.    NAME
  829.         MovePixelArray -- move the color values of a rectangular area of
  830.     pixels starting at a specified x,y location and continuing through
  831.     to another x,y location within a certain RastPort
  832.  
  833.    SYNOPSIS
  834.     count = MovePixelArray(SrcX, SrcY, RastPort,DstX , DstY ,SizeX, SizeY)
  835.     D0               D0:16 D1:16  A1      D2:16  D3:16 D4:16  D5:16
  836.  
  837.     LONG MovePixelArray(UWORD,UWORD,struct RastPort *,UWORD,UWORD,UWORD,
  838.                 UWORD)
  839.  
  840.    FUNCTION
  841.     For each pixel in a rectangular region, move the pixel value from a
  842.     specified source to a specified destination
  843.  
  844.    INPUTS
  845.     (SrcX,SrcY) - starting point in the source rectangle
  846.     RastPort -  pointer to a RastPort structure
  847.     (DestX,DestY) - starting point in the destination rectangle
  848.     (SizeX,SizeY) - size of the rectangle that should be transfered
  849.  
  850.    RESULT
  851.     count will be set to the number of pixels moved
  852.  
  853.    NOTES
  854.     This function should only be used on screens depths > 8 bits with
  855.     cybergraphics versions up to v40.
  856.     The blitter can be used to move the data if the bitmap is in display
  857.     memory. This is why you should use this call.
  858.  
  859.    BUGS
  860.     The count value returned is totally wrong.
  861.  
  862.    SEE ALSO
  863.     FillPixelArray(), InvertPixelArray(),
  864.     graphics.library/BltBitMapRastPort()
  865. cybergraphics.library/ReadPixelArray     cybergraphics.library/ReadPixelArray
  866.  
  867.    NAME
  868.         ReadPixelArray -- Read the color values of a rectangular array of
  869.     pixels starting at a specified x,y location and continuing through
  870.     to another x,y location within a certain RastPort
  871.  
  872.    SYNOPSIS
  873.     count = ReadPixelArray(destRect,DestX,DestY,DestMod,RastPort,SrcX ,
  874.     D0              A0    D0:16 D1:16 D2:16     A1     D3:16
  875.                 SrcY ,SizeX,SizeY,DestFormat)
  876.                 D4:16 D5:16 D6:16    D7
  877.  
  878.     LONG ReadPixelArray(APTR,UWORD,UWORD,UWORD,struct RastPort *,UWORD,
  879.                 UWORD,UWORD,UWORD,UBYTE)
  880.  
  881.    FUNCTION
  882.     For each pixel in a rectangular region, write the color value to a
  883.     linear array of color values from the bitmap used to describe a
  884.     particular rastport.
  885.  
  886.    INPUTS
  887.     destRect - pointer to an array of pixels where to write the pixel
  888.                data to. The pixel format is specified in DestFormat
  889.     (DestX,DestY) - starting point in the destination rectangle
  890.     DestMod - The number of bytes per row in the destination rectangle.
  891.     RastPort -  pointer to a RastPort structure
  892.     (SrcX,SrcY) - starting point in the RastPort
  893.     (SizeX,SizeY) - size of the rectangle that should be transfered
  894.     DestFormat - pixel format in the destination rectangle
  895.                 Currently supported formats are:
  896.  
  897.                 RECTFMT_RGB  3 bytes per pixel, one byte red, one blue
  898.                              and one byte green component
  899.  
  900.                 RECTFMT_RGBA 4 bytes per pixel, one byte red, one blue,
  901.                              one byte green component and the last
  902.                                  byte is alpha channel information which
  903.                          is 0 if the board does not support alpha
  904.                                  channel
  905.  
  906.                 RECTFMT_ARGB 4 bytes per pixel, one byte red, one blue,
  907.                              one byte green component and the first
  908.                                  byte is alpha channel information. If the
  909.                                  board does not support alpha channel a 
  910.                          0 is returned for alpha channel information
  911.  
  912.    RESULT
  913.     count will be set to the number of pixels read
  914.  
  915.    NOTES
  916.     This function should only be used on screens depths > 8 bits.
  917.  
  918.    BUGS
  919.     The count value returned is totally wrong.
  920.  
  921.    SEE ALSO
  922.     WritePixelArray(), graphics.library/ReadPixelArray8()
  923.  
  924. cybergraphics.library/ReadRGBPixel          cybergraphics.library/ReadRGBPixel
  925.  
  926.    NAME
  927.         ReadRGBPixel -- Reads a pixel from a specified location
  928.  
  929.    SYNOPSIS
  930.         color = ReadRGBPixel(RastPort,x ,y )
  931.         D0                     A1     D0 D1
  932.  
  933.         ULONG ReadRGBPixel(struct RastPort *,UWORD,UWORD);
  934.  
  935.    FUNCTION
  936.     Read the alpha,red,green & blue 8-bit color components of the pixel at
  937.         a specified x,y location within a certain RastPort
  938.  
  939.    INPUTS
  940.     rp -  pointer to a RastPort structure
  941.         x,y    - the coordinates of the pixel
  942.  
  943.    RESULT
  944.         color  - the desired color in AARRGGBB format. Every component
  945.          allocates 8 bits in the returned longword. The coding is as
  946.          follows:
  947.  
  948.                  AA - 8-bit alpha channel component
  949.               (boards which do not have an alpha channel return 00)
  950.                  RR - 8-bit red component of the pixel
  951.                  GG - 8-bit green component
  952.                  BB - 8-bit blue component
  953.  
  954.   NOTES
  955.     This function should only be used on screens depths > 8 bits. Use
  956.     ReadPixel() on 8 bit screens!
  957.  
  958.   SEE ALSO
  959.     WriteRGBPixel()
  960. cybergraphics.library/ScalePixelArray   cybergraphics.library/ScalePixelArray
  961.  
  962.    NAME
  963.        ScalePixelArray -- Scale the colors values of a rectangular array of
  964.     pixels starting at a specified x,y location and continuing through
  965.     to another x,y location within a certain RastPort (V41)
  966.  
  967.    SYNOPSIS
  968.     count = ScalePixelArray(srcRect,SrcW,SrcH ,SrcMod,RastPort,DestX,
  969.     D0               A0   D0:16 D1:16 D2:16     A1    D3:16
  970.                 DestY,DestW,DestH,SrcFormat)
  971.                 D4:16 D5:16 D6:16    D7
  972.  
  973.     LONG ScalePixelArray(APTR,UWORD,UWORD,UWORD,struct RastPort *,UWORD,
  974.                  UWORD,UWORD,UWORD,UBYTE)
  975.  
  976.    FUNCTION
  977.     For each pixel in a rectangular region, scale the color values from a
  978.     linear array of color values into the bitmap used to describe a
  979.     particular rastport.
  980.  
  981.    INPUTS
  982.     srcRect - pointer to an array of pixels from which to fetch the
  983.               pixel data. The pixel format is specified in SrcFormat
  984.     (SrcW,SrcH) - Width and Height of the source rectangle
  985.     SrcMod - The n umber of bytes per row in the source rectangle.
  986.     RastPort -  pointer to a RastPort structure
  987.     (DestX,DestY) - starting point in the RastPort
  988.     (DestW,DestH) - size of the destination area
  989.     SrcFormat - pixel format in the source rectangle
  990.                 Currently supported formats are:
  991.  
  992.                 RECTFMT_RGB  3 bytes per pixel, one byte red, one blue
  993.                              and one byte green component
  994.  
  995.                 RECTFMT_RGBA 4 bytes per pixel, one byte red, one blue,
  996.                              one byte green component and the last
  997.                                  byte is alpha channel information. If you
  998.                                  do not use alpha channel set this byte to
  999.                          0!!!
  1000.  
  1001.                 RECTFMT_ARGB 4 bytes per pixel, one byte red, one blue,
  1002.                              one byte green component and the first
  1003.                                  byte is alpha channel information. If you
  1004.                                  do not use alpha channel set this byte to
  1005.                          0!!!
  1006.  
  1007.                 RECTFMT_LUT8  1 byte per pixel, specifying the pen
  1008.                                   number. On screen depths > 8 bits the
  1009.                               data is converted using the actual color
  1010.                               lookup table.
  1011.  
  1012.                 RECTFMT_GREY8 1 byte per pixel, specifying grey scale
  1013.                               value.
  1014.    RESULT
  1015.     count will be set to the number of pixels plotted
  1016.  
  1017.    NOTES
  1018.     Up to v40, this function only worked on screens depths > 8 bits.
  1019.     You may specify RECTFMT_LUT8 on 8bit screens, too now if v41 is
  1020.     available
  1021.  
  1022.    BUGS
  1023.     Very early v40 revision did not support RECTFMT_LUT8 and
  1024.     RECTFMT_GREY8.
  1025.         Scaling is not very accurate. If you need high quality, use
  1026.         graphics.library/BitMapScale() instead or custom code.
  1027.     The count value returned is totally wrong.
  1028.  
  1029.    SEE ALSO
  1030.     graphics.library/BitMapScale()
  1031.  
  1032. cybergraphics.library/WriteLUTPixelArray      cybergraphics/WriteLUTPixelArray
  1033.  
  1034.    NAME
  1035.         WriteLUTPixelArray -- write the color value generated from a given
  1036.     color table of a rectangular array of pixels starting at a specified
  1037.     x,y location and continuing through to another x,y location within
  1038.     a certain RastPort (V41)
  1039.  
  1040.    SYNOPSIS
  1041.     count = WriteLUTPixelArray(srcRect,SrcX ,SrcY ,SrcMod,RastPort,
  1042.     D0                    A0   D0:16 D1:16 D2:16     A1
  1043.             CTable,DestX,DestY,SizeX,SizeY,CTabFormat)
  1044.               A2   D3:16 D4:16 D5:16 D6:16      D7
  1045.  
  1046.     LONG WriteLUTPixelArray(APTR,UWORD,UWORD,UWORD,struct RastPort *,APTR,
  1047.                          UWORD, UWORD,UWORD,UWORD,UBYTE)
  1048.  
  1049.    FUNCTION
  1050.     For each pixel in a rectangular region, write the color value
  1051.     generated with a given color lookup table from a linear array of
  1052.         indexed pixel values into the bitmap used to describe a    particular
  1053.     rastport.
  1054.  
  1055.    INPUTS
  1056.     srcRect - pointer to an array of pixels from which to fetch the
  1057.               CLUT data. Pixels are specified in bytes, 8bits/pixel.
  1058.     (SrcX,SrcY) - starting point in the source rectangle
  1059.     SrcMod - The number of bytes per row in the source rectangle.
  1060.     RastPort -  pointer to a RastPort structure
  1061.     CTable - pointer to the color table using the format specified
  1062.         with CTabFormat
  1063.     (DestX,DestY) - starting point in the RastPort
  1064.     (SizeX,SizeY) - size of the rectangle that should be transfered
  1065.     CTabFormat - color table format in the source rectangle
  1066.         Currently supported formats are:
  1067.          CTABFMT_XRGB8 - CTable is a pointer to a ULONG table
  1068.              which contains 256 entries. Each entry specifies the
  1069.             rgb colour value for the related index. The format
  1070.             is XXRRGGBB.
  1071.  
  1072.                      XX - unused
  1073.                      RR - 8-bit red component of the pixel
  1074.                      GG - 8-bit green component
  1075.                         BB - 8-bit blue component
  1076.  
  1077.     
  1078.    RESULT
  1079.     count will be set to the number of pixels plotted
  1080.  
  1081.    NOTES
  1082.     Does only work on rastports with depth > 8bits
  1083.  
  1084.    BUGS
  1085.     The count value returned is totally wrong.
  1086.  
  1087.    SEE ALSO
  1088.     ReadPixelArray(), WritePixelArray(), 
  1089.     graphics.library/WritePixelArray8()
  1090.  
  1091. cybergraphics.library/WritePixelArray   cybergraphics.library/WritePixelArray
  1092.  
  1093.    NAME
  1094.         WritePixelArray -- write the color value of a rectangular array of
  1095.     pixels starting at a specified x,y location and continuing through
  1096.     to another x,y location within a certain RastPort
  1097.  
  1098.    SYNOPSIS
  1099.     count = WritePixelArray(srcRect,SrcX ,SrcY ,SrcMod,RastPort,DestX,
  1100.     D0               A0   D0:16 D1:16 D2:16     A1    D3:16
  1101.                 DestY,SizeX,SizeY,SrcFormat)
  1102.                 D4:16 D5:16 D6:16    D7
  1103.  
  1104.     LONG WritePixelArray(APTR,UWORD,UWORD,UWORD,struct RastPort *,UWORD,
  1105.                  UWORD,UWORD,UWORD,UBYTE)
  1106.  
  1107.    FUNCTION
  1108.     For each pixel in a rectangular region, write the color value from a
  1109.     linear array of color values into the bitmap used to describe a
  1110.     particular rastport.
  1111.  
  1112.    INPUTS
  1113.     srcRect - pointer to an array of pixels from which to fetch the
  1114.               pixel data. The pixel format is specified in SrcFormat
  1115.     (SrcX,SrcY) - starting point in the source rectangle
  1116.     SrcMod - The number of bytes per row in the source rectangle.
  1117.     RastPort -  pointer to a RastPort structure
  1118.     (DestX,DestY) - starting point in the RastPort
  1119.     (SizeX,SizeY) - size of the rectangle that should be transfered
  1120.     SrcFormat - pixel format in the source rectangle
  1121.                 Currently supported formats are:
  1122.  
  1123.                 RECTFMT_RGB   3 bytes per pixel, one byte red, one blue
  1124.                               and one byte green component
  1125.  
  1126.                 RECTFMT_RGBA  4 bytes per pixel, one byte red, one
  1127.                               blue, one byte green component and the
  1128.                               last byte is alpha channel information.
  1129.                               If you do not use alpha channel set this
  1130.                               byte to 0!!!
  1131.  
  1132.                 RECTFMT_ARGB  4 bytes per pixel, one byte red, one
  1133.                               blue, one byte green component and the
  1134.                               first byte is alpha channel information.
  1135.                               If you do not use alpha channel set this
  1136.                               byte to 0!!!
  1137.  
  1138.                 RECTFMT_LUT8  1 byte per pixel, specifying the pen
  1139.                                   number. On screen depths > 8 bits the
  1140.                               data is converted using the actual color
  1141.                               lookup table.
  1142.  
  1143.                 RECTFMT_GREY8 1 byte per pixel, specifying grey scale
  1144.                               value.
  1145.  
  1146.    RESULT
  1147.     count will be set to the number of pixels plotted
  1148.  
  1149.    NOTES
  1150.     Only RECTFMT_LUT8 can be used on screen depths <= 8 bits.
  1151.     For > 8 bit rastport RECTFMT_LUT8 uses the actual colormap "attached"
  1152.     to the bitmap. If the bitmap is a friend bitmap of a screen bitmap
  1153.     or the screen bitmap itself, it uses the screen's viewport colormap.
  1154.     
  1155.    BUGS
  1156.     The count value returned is totally wrong.
  1157.  
  1158.    SEE ALSO
  1159.     ReadPixelArray(), WriteLUTPixelArray(),
  1160.     graphics.library/WritePixelArray()
  1161.  
  1162. cybergraphics.library/WriteRGBPixel        cybergraphics.library/WriteRGBPixel
  1163.  
  1164.    NAME
  1165.         WriteRGBPixel -- Writes a pixel to a specified location
  1166.  
  1167.    SYNOPSIS
  1168.         error = WriteRGBPixel(RastPort,x ,y ,color)
  1169.         D0                      A1     D0 D1 D2
  1170.  
  1171.         ULONG WriteRGBPixel(struct RastPort *,UWORD,UWORD,ULONG);
  1172.  
  1173.    FUNCTION
  1174.     Write the alpha,red,green and blue 8-bit color component of the given
  1175.         color to a specified x,y location within a certain RastPort
  1176.  
  1177.    INPUTS
  1178.     rp     - pointer to a RastPort structure
  1179.         x,y    - the coordinates of the pixel
  1180.         color  - the desired color in AARRGGBB format. Every component
  1181.          allocates 8 bits of the returned longword. The coding is as
  1182.          follows:
  1183.  
  1184.                  AA - 8-bit alpha channel component
  1185.               (set it to 00 if you dont want to use it!)
  1186.                  RR - 8-bit red component of the pixel
  1187.                  GG - 8-bit green component
  1188.                  BB - 8-bit blue component
  1189.  
  1190.    RESULT
  1191.     error = 0 if pixel succesfully changed
  1192.           = -1 if (x,y) is outside the rastport
  1193.  
  1194.    NOTES
  1195.     This function should only be used on screens depths > 8 bits. Use
  1196.     WritePixel() on 8 bit screens!
  1197.  
  1198.    SEE ALSO
  1199.     ReadRGBPixel(), graphics.library/WritePixel()
  1200.  
  1201. cybergraphics.library/UnLockBitmap           cybergraphics.library/UnLockBitMap
  1202.  
  1203.    NAME
  1204.     UnLockBitMap -- Unlock CyberGraphX BitMap that was previously locked
  1205.  
  1206.    SYNOPSIS
  1207.     UnLockBitmap( Handle )
  1208.                         A0
  1209.  
  1210.     void UnLockBitMap( APTR );
  1211.  
  1212.    FUNCTION
  1213.         Unlock CyberGraphX BitMap that was previously locked
  1214.  
  1215.    INPUTS
  1216.         handle - handle to the previously locked BitMap
  1217.  
  1218.    SEE ALSO
  1219.     LockBitMapTagList()
  1220.  
  1221. cybergraphics.library/UnLockBitmapTagList    cybergraphics/UnLockBitMapTagList
  1222.  
  1223.    NAME
  1224.     UnLockBitMapTagList -- Unlock CyberGraphX BitMap that was previously
  1225.         locked
  1226.     UnLockBitMapTags -- Varargs stub for UnLockBitMapTagList
  1227.  
  1228.    SYNOPSIS
  1229.     UnLockBitmapTagList( Handle, Tags )
  1230.                               A0      A1
  1231.  
  1232.     void UnLockBitMapTagList( APTR, struct TagItem * );
  1233.  
  1234.     void UnLockBitMapTags( APTR, Tag1, ... );
  1235.  
  1236.    FUNCTION
  1237.         Unlock CyberGraphX BitMap that was previously locked
  1238.  
  1239.    INPUTS
  1240.         handle - handle to the previously locked BitMap
  1241.  
  1242.     Tags - pointer to a mandatory taglist
  1243.    TAGS
  1244.     UBMI_UPDATERECTS (struct RectList *) - pointer to a rectlist which
  1245.         contains rectangles that should be updated. This is needed for
  1246.         cards that don't have a linear display memory address space
  1247.         The RectList structure looks like this:
  1248.             struct RectList
  1249.             {
  1250.              ULONG rl_num;           // no. of rects in this list
  1251.              struct RectList *rl_next; // pointer to next list
  1252.              struct Rectangle rect1;   // This is the first
  1253.                 ..           // rectangle followed by
  1254.                 ..           // rl_num-1 rectangles
  1255.                 ..
  1256.             }
  1257.     UBMI_REALLYUNLOCK (BOOL) - Specifies whether bitmap should really be
  1258.         unlocked (TRUE) or not (FALSE) in case you just want to update
  1259.         certain rectangles and unlock later.
  1260.  
  1261.    BUGS
  1262.     Very early v40 revisions did not support this call
  1263.  
  1264.    SEE ALSO
  1265.     LockBitMapTagList(), UnLockBitMap()
  1266.  
  1267.  
  1268.